Software is commonly deployed on computer desktops by an installation package that may be provided by a software vendor. A user invokes an installer program, which extracts and copies files from the installation package and then adds information about the software to platform-dependent locations, such as a registry, where the operating system may manage the software inventory. Exemplary installer programs that the software vendor may use to package and deploy popular software include InstallAnywhere and InstallShield. Actions performed by an installer program are well-defined and may be monitored and customized depending on for example, the requirements of the software vendor or the software management guidelines at a business enterprise's computer environment.
Current Software Asset Management (SAM) solutions for performing software discovery within a computer environment often include distributing a software catalog to agents that are running on client workstations. The software catalog may include a set of discovery rules for the agents to use for each software package or program when scanning filesystems, registries, lists of running processes, and the like. However, computing resources may be unnecessarily used on redundant scans of client workstations, even though no software deployment activities have occurred. Additionally, considering the diversity of software products likely to be found in a business enterprise's computing environment, the maintenance costs associated with the software catalogs may be prohibitive.